Unless otherwise indicated herein, approaches described in this section are not prior art to the claims listed below and are not admitted to be prior art by inclusion in this section.
Application processes in some computer operating systems, such as Linux, generally employ a memory sharing scheme for a parent process and its child processes, so as to reduce the total amount of memory used by the parent and child processes. For instance, in a conventional approach as shown in scenario 800 of FIG. 8, a parent process 810 prepares a memory space 830 that is used by and/or shared with a child process 820 created by the parent process 810. As the memory space 830 prepared by parent process 810 is used by/shared with child process 820, the idea is that only one copy of shared memory (i.e., memory space 830 prepared by parent process 810) exists and occupies actual space in a memory device such as a random-access memory (RAM) since child process 820 needs not prepare a separate memory space (e.g., non-shared memory space 840) for its own use. FIG. 9 illustrates typical scenarios under another conventional approach 900. In scenario 910, there are multiple child processes created by the parent process and the parent process prepares a union set of memory spaces for use by the multiple child processes. However, as shown in scenario 920, when the number of child processes created is small, some of the memory spaces prepared by the parent process may be unused. Undesirably, this is inefficient use of memory. Besides, as it takes computing time and power to prepare each memory space, unused memory space(s) also means wasted computing time and power.